115 PRINT CHR$(4)"READ"PF$"FRWHERE": INPUT X2: INPUT WH$(MP):WH(MP,0) = -3: IF X2 > -1 THEN WH(MP,0) = -X2
120 IF X2 < >0 THEN PRINT CHR$(4): GOTO 112
125 INPUT WH(MP,4): INPUT X4: PRINT CHR$(4): PRINT CHR$(4)"OPEN"WH$(MP)"FILE.NUMB": PRINT CHR$(4)"READ"WH$(MP)"FILE.NUMB": INPUT X5: IF X5 <1 THEN 140
130 INPUT WH(MP,4):WH(MP,0) = (WH(MP,4) -1) *ND: IF X5 <2 THEN 140
135 X6 = MP: FOR I = 2 TO X5:MP = MP +1:WH$(MP) = WH$(X6):WH(MP,1) = X:WH(MP,2) = ME(X,2):WH(MP,3) = ME(X,3): INPUT WH(MP,4):WH(MP,0) = (WH(MP,4) -1) *ND: NEXT
140 PRINT CHR$(4)"CLOSE"WH$(MP)"FILE.NUMB": IF X4 < >ND THEN PRINT "DATA IN DRIVE "X", DIRECTORY "WH$(MP);: GOSUB 860: PRINT "DOESN'T MATCH THE CONFIGURATION FILE.": FOR I = 1 TO 2000: NEXT :CC = 1
142 IF X5 <1 THEN MP = MP -1
145 GOTO 112
150 POKE 216,0: FOR I = 1 TO MP: IF WH(I,0) = -3 THEN LD = I:I = MP
155 NEXT : IF LD <1 THEN PRINT "NO PROGRAMS FOUND": FOR I = 1 TO 2000: NEXT : GOSUB 310: GOTO 150
190 LO = 0: ONERR GOTO 300
191 IF Q(5) OR NOT Q(30) THEN 195
194 GOSUB 500: PRINT SPC( 14)"LOADING NEXT MODULE"
195 POKE 216,0: IF PF$ < >WH$(LD) THEN PF$ = WH$(LD): PRINT CHR$(4)"PREFIX"PF$",S"WH(LD,2)",D"WH(LD,3)
200 PRINT CHR$(4)"RUNPROGRAMS"
300 POKE 216,0:I = PEEK(222): IF I < >8 THEN PRINT "ERROR # "I" AT LINE " PEEK(218) +256 * PEEK(219)". CAN'T CONTINUE.": END
305 GOSUB 310: GOTO 190
310 GOSUB 850: FOR I = 1 TO 8: PRINT : NEXT : INVERSE : PRINT "PLACE PROGRAM DISK IN DRIVE "Q(29): NORMAL : PRINT : PRINT "PRESS ANY KEY WHEN READY";: GOSUB 690:LD = Q(29): RETURN
380 PRINT CHR$(4)"CLOSE":A = PEEK(222):L = PEEK(218) +256 * PEEK(219): IF A = 3 AND L = 103 THEN 5080
4045 FOR I = 41 TO 46: IF Q$(I) = "" THEN Q$(I) = "/"
4050 NEXT : IF Q(31) <1 THEN Q(31) = 30
4090 RETURN
5000 ONERR GOTO 5900
5010 DIM Q(84),Q$(50)
5020 PRINT CHR$(4)"OPEN CONFIGURATION": PRINT CHR$(4)"READ CONFIGURATION": FOR I = 1 TO 44: INPUT Q(I): NEXT : IF Q(4) <3 OR (Q(4) > = 3 AND Q(39) >3) THEN 5080
5030 FOR I = 45 TO 84: INPUT Q(I): NEXT : FOR I = 1 TO 50:Q$(I) = ""
5040 K = 0: GET A$: IF A$ = CHR$(127) THEN A$ = CHR$(0)
5042 IF A$ = CHR$(126) THEN A$ = CHR$(13):K = 1
5045 IF A$ < > CHR$(13) OR K = 1 THEN Q$(I) = Q$(I) +A$: GOTO 5040
5050 NEXT : INPUT A$: PRINT CHR$(4)"CLOSE": POKE 216,0
5095 GOSUB 850: FOR I = 1 TO 8: PRINT : NEXT : INVERSE : PRINT "PLACE THE DISK CONTAINING 'MANAGER'";: GOSUB 860: PRINT "IN THE DRIVE LAST USED (BOOT DRIVE?).": NORMAL : PRINT : PRINT "PRESS ANY KEY WHEN READY";: GOSUB 690: RETURN
5900 A = PEEK(222): IF A < >5 AND A < >6 AND A < >8 THEN 5920
5910 PRINT "THERE IS NO CONFIGURATION FILE ON THE";: GOSUB 860: PRINT "PROGRAM DISK. PLEASE RUN THE 'MANAGER'": PRINT "PROGRAM.": END
5920 PRINT "ERROR # "A". PLEASE SEE DOS MANUAL.": END
6000 I = Q(18): IF I <25 THEN I = 25
6002 DIM C$(I),G$(I),F$(3 *I),EX$(Q(17)),MI$(4,Q(19)),RC$(22):A = Q(24): IF A <Q(36) *Q(37) THEN A = Q(36) *Q(37)
6010 DIM SV(A),OP(30),OP$(30),TY(30),G(13):G(10) = A
6015 I = Q(18): IF I <19 THEN I = 19
6016 IF I <Q(20) THEN I = Q(20)
6017 J = Q(20): IF J <11 THEN J = 11
6018 IF I <Q(75) THEN I = Q(75)
6019 IF J <Q(75) -1 THEN J = Q(75) -1
6020 DIM OD(I),T(J +1),OE(I)
6022 I = 31: IF Q(18) >I THEN I = Q(18)
6025 DIM EM$(I)
6030 DIM MT$(12): FOR I = 0 TO 12: READ MT$(I): NEXT
6040 DIM CH$(4),H$(9),H1$(5),VR$(10),WR$(4)
6041 I = Q(18): IF I <31 THEN I = 31
6042 J = Q(20): IF J <Q(42) THEN J = Q(42)
6043 IF J <Q(19) THEN J = Q(19)
6044 IF (J -2) *I <Q(75) THEN J = Q(75)/I +2
6045 IF J <Q(17) THEN J = Q(17)
6046 DIM S$(I,J): GOSUB 7000
6050 DIM NA$(Q(36) *Q(37)),PA(Q(37) -1),SC(Q(37) -1),CT(Q(37) -1),PT(Q(37) -1),ME(Q(8),3),ME$(Q(8)),WH(Q(31),4),WH$(Q(31))
6060 GOSUB 8400: GOSUB 8000: GOSUB 8100
6100 DIM DF(Q(44) +11),FP(22)
6110 IF Q(44) = 0 THEN RETURN
6120 FOR I = 1 TO Q(44):FP(I +11) = VAL( RIGHT$(Q$(I +11),1)) +11: IF FP(I +11) = 11 THEN FP(I +11) = 0
6125 A = LEN(Q$(I +11)):DF(I +11) = VAL( MID$ (Q$(I +11),A -1,1)): IF A >2 THEN Q$(I +11) = LEFT$(Q$(I +11),A -2): GOTO 6130
6127 Q$(I +11) = ""
6130 NEXT : RETURN
7000 G(9) = 12: RETURN
8000 KY = LEN(Q$(30)) -1: IF KY <0 THEN RETURN
8010 DIM KY(KY),KY$(KY)
8015 LB = 4: IF KY <LB THEN LB = KY
8020 FOR I = 0 TO KY:KY(I) = ASC( MID$ (Q$(30),I +1,1)) -64: IF I < = LB THEN KY$(I) = Q$(I +31)
8030 NEXT : RETURN
8100 RN$ = "RN": RETURN
8400 MP = 0:MQ = 0: FOR I = 1 TO Q(8):ME(I,0) = Q(75 +I):ME$(I) = Q$(40 +I): FOR J = 2 TO 3:ME(I,J) = Q(47 +J +(I -1) *2): NEXT : NEXT :A$ = STR$(Q(67))
8405 IF LEN(A$) <Q(8) THEN A$ = "0" +A$: GOTO 8405
8410 IF LEN(A$) >Q(8) THEN A$ = RIGHT$(A$,Q(8))
8415 FOR I = 1 TO Q(8):ME(I,1) = VAL( MID$ (A$,Q(8) -I +1,1)) -1: NEXT
8420 RETURN
10000 DATA "???","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
12500 DY$ = "":A = PEEK(49040):N = PEEK(49041): IF A +N = 0 THEN DY$ = Q$(3): RETURN
12510 K = INT(N/2):I = A - INT(A/32) *32:J = (N -K *2) *8 + INT(A/32): IF J <1 OR J >12 THEN J = 0